package com.blrs.service.qualification;

import java.util.List;

import com.blrs.common.core.domain.AjaxResult;
import com.blrs.domain.QualificationInfo;
import com.blrs.domain.QualificationSwpplier;
import org.springframework.validation.annotation.Validated;

/**
 * 资质产品管理Service接口
 * 
 * @author ruoyi
 * @date 2023-08-07
 */
public interface IQualificationInfoService 
{
    /**
     * 查询资质产品管理
     * 
     * @param id 资质产品管理主键
     * @return 资质产品管理
     */
    public QualificationInfo selectQualificationInfoById(String id);

    /**
     * 查询资质产品管理列表
     * 
     * @param qualificationInfo 资质产品管理
     * @return 资质产品管理集合
     */
    public List<QualificationInfo> selectQualificationInfoList(QualificationInfo qualificationInfo);
    public List<QualificationInfo> selectQualificationInfoListByOrgId(QualificationInfo qualificationInfo);

    /**
     * 新增资质产品管理
     * 
     * @param qualificationInfo 资质产品管理
     * @return 结果
     */
    public int insertQualificationInfo(QualificationInfo qualificationInfo);

    /**
     * 修改资质产品管理
     * 
     * @param qualificationInfo 资质产品管理
     * @return 结果
     */
    public int updateQualificationInfo(QualificationInfo qualificationInfo);

    /**
     * 批量删除资质产品管理
     * 
     * @param ids 需要删除的资质产品管理主键集合
     * @return 结果
     */
     public int deleteQualificationInfoByIds(String[] ids);

    /**
     * 删除资质产品管理信息
     * 
     * @param id 资质产品管理主键
     * @return 结果
     */
    public int deleteQualificationInfoById(String id);

    AjaxResult importExcel(@Validated  List<QualificationInfo> list) throws NoSuchFieldException, IllegalAccessException, Exception;

    /**
     * 根据产品类别查询字典中文
     */
    String selectProductType(String type);

    //审批
    int approve(String[] id, String status);

    List<QualificationInfo> selectQualificationInfoListAll(QualificationInfo qualificationInfo);

    AjaxResult selectQualificationInfoByType();


    AjaxResult releaseProduct(String[] id);

    AjaxResult updateQualificationInfoExamine(QualificationInfo qualificationInfo);

    List<QualificationInfo> selectQualificationInfoChangeList(QualificationInfo qualificationInfo);
    int selectQualificationInfoNumber(Long organizationId);

    int revokeProductById(String id);

    List<QualificationInfo> selectQualificationInfoListByListing(QualificationInfo qualificationInfo);

    QualificationInfo selectQualificationInfoByIdAndOrg(String id);

    String selectQualificationNo(String no, String id);

    int updateQualificationInfoApply(String id);

    QualificationInfo changeById(String id);

}
